#include <stdio.h>
#include <stdlib.h>
#include "ppm.h"

void InicializaImagem(Imagem *imagem)
{
	imagem->imagem = NULL;
	imagem->intensidadeRGB = 0;
	imagem->numColunas = 0;
	imagem->numLinhas = 0;
}
Pixel **AlocaMatrizImagem(int linhas, int colunas)
{
	if((linhas < 1) || (colunas < 1))
	{
		printf("Parametro invalido para alocacao da matriz\n");
		exit(1);
	}
	Pixel **matriz;
	int i;

	/*
	 * Aloca as linhas da matriz
	 */
	matriz = (Pixel **)malloc(linhas * sizeof(Pixel *));
	if(matriz == NULL)
	{
		printf("Memoria insuficiente para alocar linhas\n");
		exit(1);
	}

	/*
	 *  Aloca as colunas da matriz
	 */
	for(i=0; i<linhas; i++)
	{
		matriz[i] = (Pixel *)malloc(colunas * sizeof(Pixel));
		if(matriz[i] == NULL)
		{
			printf("Memoria insuficiente para alocar colunas\n");
			exit(1);
		}
	}
	return matriz;
}

void AtribuirValoresImagemReduzida(Imagem *original, Imagem *reduzida)
{
	reduzida->imagem = AlocaMatrizImagem(original->numLinhas, (original->numColunas - 1));
	reduzida->intensidadeRGB = original->intensidadeRGB;
	reduzida->numLinhas = original->numLinhas;
	reduzida->numColunas = original->numColunas - 1;
}
